<?php

class RecoveryController extends BackEndController
{
	public $defaultAction = 'recovery';
	
	/**
	 * Recovery password
	 */
	public function actionRecovery () {
		$form = new UserRecoveryForm;
		if (Yii::app()->user->id) {
		    	$this->redirect(Yii::app()->controller->module->returnUrl);
		    } else {
				$email = ((isset($_GET['email']))?$_GET['email']:'');
				$activkey = ((isset($_GET['activkey']))?$_GET['activkey']:'');
				if ($email&&$activkey) {
					$form2 = new UserChangePassword;
		    		$find = User::model()->notsafe()->findByAttributes(array('email'=>$email));
		    		if(isset($find)&&$find->activkey==$activkey) {
			    		if(isset($_POST['UserChangePassword'])) {
							$form2->attributes=$_POST['UserChangePassword'];
							if($form2->validate()) {
								$find->password = Yii::app()->controller->module->encrypting($form2->password);
								$find->activkey=Yii::app()->controller->module->encrypting(microtime().$form2->password);
								if ($find->status==0) {
									$find->status = 1;
								}
								$find->save();
                                                                $this->setNotice(array(array(
                                                                    'title'=>Yii::t('user','Менеджер пользователей'),
                                                                    'text'=>Yii::t('user','Новый пароль сохранен.'),
                                                                    'type'=>'info'),
                                                                    ));
								$this->redirect(Yii::app()->controller->module->recoveryUrl);
							}
						} 
						$this->render('changepassword',array('form'=>$form2));
		    		} else { 
                                        $this->setNotice(array(array(
                                                'title'=>Yii::t('user','Менеджер пользователей'),
                                                'text'=>Yii::t('user','Неправильная ссылка восстановления пароля.'),
                                                'type'=>'info'),
                                                ));
						$this->redirect(Yii::app()->controller->module->recoveryUrl);
		    		}
		    	} else {
			    	if(isset($_POST['UserRecoveryForm'])) {
			    		$form->attributes=$_POST['UserRecoveryForm'];
			    		if($form->validate()) {
			    			$user = User::model()->notsafe()->findbyPk($form->user_id);
                                                $activation_url = 'http://' . $_SERVER['HTTP_HOST'].$this->createUrl(implode(Yii::app()->controller->module->recoveryUrl),array("activkey" => $user->activkey, "email" => $user->email));

                                                $subject = Yii::t('user', 'Вы запросили восстановление пароля {site_name}.',
                                                        array(
                                                                '{site_name}'=>Yii::app()->name,
                                                        ));
			    			$message = Yii::t('user','Вы запросили восстановление пароля {site_name}. Чтобы получить новый пароль, перейдите по ссылке {activation_url}.',
			    					array(
			    						'{site_name}'=>Yii::app()->name,
			    						'{activation_url}'=>$activation_url,
			    					));
							
			    			UserModule::sendMail($user->email,$subject,$message);
                                                
                                                $this->setNotice(array(array(
                                                    'title'=>Yii::t('user','Менеджер пользователей'),
                                                    'text'=>Yii::t('user','На Ваш адрес электронной почты было отправлено письмо с инструкциями.'),
                                                    'type'=>'success'),
                                                    ));
			    			$this->refresh();
			    		}
			    	}
		    		$this->render('recovery',array('form'=>$form));
		    	}
		    }
	}
}